1. 零知识证明是什么
零知识证明(Zero-Knowledge Proof, 简称 ZKP)技术可以解决去中心化世界中的隐私和安全问题。零知识证明就是一个证明者Prover向验证者Verifier证明某个陈述(Statement)是真是假,但在证明过程中不泄露任何其他信息。比如身份证明,某一个组织让组织内成员提供身份证明,而组织成员又不想泄露具体身份信息,就可以使用零知识证明来完成。
2. 热门应用场景
零知识证明在区块链中有以下三个热门的应用场景:
2.1. ZK Layer2
“不可能三角”是以太坊这样的 Layer 1(L1) 区块链面临的永恒的难题,不同的链也总是在去中心化、安全性和可扩展性三者间寻找平衡。由于一些以太坊这样的 L1 偏向于提高其去中心化和安全性,因此不得不面临可拓展性方面的限制。因此,出现Layer 2(L2)这样的链生态,他们将 L1 层网络上的交易转移至 L2 来解决上述问题。
ZK-Rollup 则是一种利用零知识证明来执行链下计算和存储,然后将交易批次(Batches)发送到 L1 的 L2 协议。ZK-Rollup 无需泄露具体交易信息即可证明相应的加密数据,它允许即时验证或拒绝交易,并通过打包数百个交易整合到单个交易中来提高可扩展性。相较于 L1,ZK-Rollups 可以实现低成本,并且在交易处理方面具有更高的效率。目前热门的 ZK-Rollups 项目有 StarkNet、Loopring 和 zkSync等。
2.2. 隐私保护交易网络(Privacy-preserving Trading Networks)
在Web3的世界中,任何人都可以轻松访问用户的敏感信息,例如交易/转账记录和链上活动。因此对于大多数用户来说,保持个人数据的私密性是一个重大挑战。隐私保护公链的出现满足了Web3用户的隐私保护需求。这些链为用户提供隐私保护解决方案,使他们能够通过零知识证明和安全多方计算(MPC)等技术有选择地隐藏敏感信息。在保护隐私的交易网络方面,出现了大量新的公链,包括Aleo、Anoma、Aztec等,他们将用户的交易保密并隐藏其交易数据(身份、日期、金额等),帮助用户完全掌控自己的隐私信息。
2.3. 基于POV(Privacy-oriented Verification)的eKYC服务
通过使用零知识证明,我们可以构建以隐私为导向的KYC验证方式(https://zan.top/home/privacy-oriented-verification),允许用户选择自己想要的方式来进行身份验证。例如,Defi智能合约可以使用该服务来确定自己的客户是否进行通过KYC证明,而在这个过程中不会暴露用户的真实信息。对于通过KYC的客户来说,一次身份验证可以重复在多个Defi项目中进行使用。当前提供POV的项目有ZAN POV、zkPass等。
3. 隐私化驱动场景创新
除了上述两种应用场景,零知识证明还能用于DEX、预言机、拍卖等其他领域,以保护使用者身份的隐私性和数据传输的准确性。
我们知道信息只要传到区块链上就会公之于众,这让隐私保护受到了巨大的挑战。通过对地址资金流进行追溯,可以推测出地址的行为习惯、投资偏好甚至是真实身份。因此,Defi协议的设计过程中应充分考虑到用户的身份信息保护措施。下面举例两个身份信息保护的创新应用场景:
- 隐私DEX:通过使用零知识证明,隐私DEX(https://arxiv.org/pdf/2309.01667.pdf)能够很好地隐藏交易者的身份信息,并对交易的有效性进行验证。这样做可以让完整的交易事件得到隐藏,而交易方仅需提供剩余交易资金非负的证明即可。同时,在交易结束后,交易者可以获得一个凭证,该凭证包括了一些监管辅助信息,能够让监管机构很好地发挥其职能
- 隐私拍卖:由于区块链交易都是公开的,任何人都可以观察到投标者的出价和资金状况。如果一个投标者知道了其他投标者的出价。或者,他知道了其他投标者的身份,就可以根据区块链公开的交易信息得知此账号拥有的可用资金。这个投标者就可以根据其他投标者的出价或者可用资金来调整自己的出价以赢得拍卖。因此,我们可以使用零知识证明在不透露身份或可用资金的情况下提交出价,实现隐私拍卖(https://arxiv.org/pdf/2202.06877.pdf)。
- 匿名投票:区块链上的投票活动,所有信息都是公开的,这会使投票者的隐私信息被潜在的攻击者获取。基于区块链的投票项目面临着投票者的身份隐私和投票数据被篡改两大挑战。通过结合零知识证明和默克尔树,我们可以构建匿名的区块链投票方式(https://www.mdpi.com/2079-9292/12/9/1968),为投票者生成匿名身份,并使用ZK电路在链上验证投票计算的有效性。
在区块链中,智能合约无法直接获取链下数据,需要通过外部交易或者预言机的方式将数据传输给智能合约,而在传输过程中需要确保传输数据的准确性:
- ZK预言机:区块链上,智能合约想要获取链下真实世界的数据时(例如天气、货币价格、随机数等),需要请求对应的预言机。然而,预言机通常会有多个数据源,数据从这些数据源到智能合约之间的传输和计算的安全性面临着挑战。因此,我们可以使用零知识证明改造预言机对数据源给出的数据的聚合等计算过程,让预言机输出ZK证明。智能合约侧则可以验证这个ZK证明,从而确定预言机计算的有效性(https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131)。
- ZK跨链桥:ZK跨链桥(https://rdi.berkeley.edu/zkp/zkBridge/zkBridge.html)利用零知识证明来实现区块链之间的去信任通信。这种加密技术确保可以在不泄露敏感信息的情况下验证交易和数据传输,从而增强隐私和安全性。其目标之一是打破区块链网络之间的数据孤岛并充当桥梁,允许用户在不同区块链之间无缝转移资产和数据,促进不同区块链网络之间的安全和私密通信,从而培育更加互联和协作的生态系统。
4. 总结
零知识证明是一种基于密码学的先进技术,目前已经在区块链生态中的应用已经在逐渐成熟。然而由于其使用的门槛较高,应用的场景还不够丰富。相信在区块链技术的未来发展过程中,零知识证明会扮演一个重要的角色,充分发挥其隐私保护的作用。ZAN技术团队在这个过程中坚持创新,向Web3开发者们提供了ZK Rollup-as-a-Service、POV等服务,助力所有的Web3创造者们安全、快速地搭建Web3应用。
5. 引用
https://ethereum.org/developers/docs/scaling/zk-rollups
https://www.coinex.com/en/blog/1712-a-new-paradigm-of-privacy-preserving-trading-networks-aleo-and-aztec
https://zan.top/home/privacy-oriented-verification
https://foresightnews.pro/article/detail/52273
https://arxiv.org/pdf/2309.01667.pdf
https://arxiv.org/pdf/2202.06877.pdf
https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131
https://www.mdpi.com/2079-9292/12/9/1968
https://medium.com/@parvatamit1/what-is-zkbridge-71b8ec751e97
https://rdi.berkeley.edu/zkp/zkBridge/zkBridge.html